package com.ytjj.qmyx.mall.model.response;

import com.ytjj.common.utils.TokenUtil;
import com.ytjj.qmyx.mall.constants.IsActivityConstant;
import com.ytjj.qmyx.mall.model.*;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.beans.BeanUtils;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 活动商品响应类
 *
 *
 * @version 1.0
 *
 */
@Data
@Accessors(chain = true)
public class ProductActivityResponse{

    /**
     * 主键
     *
     */
    private Integer id;

    /**
     * 活动类型
     *
     */
    private String activityType;

    /**
     * 商品id
     *
     */
    private Integer productId;

    /**
     * 商品描述
     */
    private String descr;

    /**
     * 商品标识
     *
     */
    private String productNo;

    /**
     * 商品白图
     *
     */
    private String productImg;

    /**
     * 商品名称
     *
     */
    private String productName;

    /**
     * 场景图
     *
     */
    private String sceneImg;

    /**
     * 活动标识：积分/红包/抵扣券
     *
     */
    private BigDecimal activityMax;

    /**
     * 活动标识：积分/红包/抵扣券
     *
     */
    private BigDecimal activityMin;

    /**
     * 活动额外参数
     *
     */
    private String extra;

    /**
     * 点击量
     *
     */
    private Integer pv;

    /**
     * 评论总数
     *
     */
    private Integer comment;

    /**
     * 好评率
     *
     */
    private BigDecimal commentGood;

    /**
     * 排序
     *
     */
    private Integer sort;

    /**
     * pageBar
     */
    private PageButton pageButton;

    /**
     * 销量
     *
     */
    private Integer volume;

    /**
     * 销量展示
     *
     */
    private String volumeStr;

    /**
     * 总库存
     *
     */
    private Integer stock;

    /**
     * 库存剩余进度条
     */
    private Integer stockProgress;

    /**
     * 栏目id
     *
     */
    private Integer columnId;

    /**
     * 状态1上架2下架3预售
     *
     */
    private Byte status;

    /**
     * 成本
     *
     */
    private BigDecimal cost;

    /**
     * 原价
     *
     */
    private BigDecimal originalPrice;

    /**
     * 价格
     *
     */
    private BigDecimal price;

    /**
     * sku属性json列表
     *
     */
    private String attributeJson;
    /**
     * 店家id
     *
     * @mbg.generated
     */
    private Integer bankerId;

    /**
     * 货源
     *
     * @mbg.generated
     */
    private String warehouse;

    /**
     * 货源名称
     *
     * @mbg.generated
     */
    private String warehouseName;

    /**
     * 仓库规则如：不退换不到付
     *
     * @mbg.generated
     */
    private String warehouseRule;

    /**
     * 图片集合
     */
    private Map<String,List<ProductImg>> imgMapList;

    /**
     * 推荐图片列表
     */
    private List<ProductRecommendImgResponse> recommendImgList;

    /**
     * Es推荐数量
     */
    private Long similaritySum;

    /**
     * 缩略图
     */
    private String shrinkImg;


    /**
     * 假用户集合
     */
    private List<UsersFake> fakeUserList;

    /**
     * 是否为活动
     *
     * 备注：该字段用于给前端分辨是否为活动商品
     */
    private Integer isActivity;

    private Map<String,Object> SpecMap;

    /**
     * 现金劵图片
     */
    private String cashCouponImg;

    /**
     * 区分50和100现金劵 类型
     *
     * @param productActivity
     */
    private String cashType;

    /**
     * 拍卖
     */
    private List<AuctionResponse> auctionList;

    /**
     * 现价
     */
    private BigDecimal curPrice;

    /**
     * 规格id
     */
    private Integer specId;

    /**
     * 大图标志
     */
    private Integer recImgFlag;

    private BigDecimal preferentialPrice;

    /**
     * 推荐文案
     *
     * @mbg.generated
     */
    private String recommendDoc;

    /**
     * 推荐描述
     *
     * @mbg.generated
     */
    private String recDescr;

    /**
     * 提示语
     */
    private String advertTips;

    /**
     * 是否隐藏
     * @mbg.generated
     */
    private Integer isHide;

    /**
     * 是否广告
     * @mbg.generated
     */
    private Integer isAdvert;

    /**
     * 该商品店铺推荐数量
     */
    private List<ProductActivityResponse> recommend;

    /**
     * 该店铺的商品数量
     */
    private Integer productNum;

    /**
     * 该店铺关注数
     */
    private Integer followNum;

    /**
     * 店铺标题
     */
    private String title;

    /**
     * 店铺Logo
     */
    private String logo;

    /**
     * 优惠券的过期时间
     * @param productActivity
     */
    private String expireTime;

    /**
     * 说明
     */
    private String explain;
    /**
     * 活动主图
     */
    private String activityMainImg;

    public ProductActivityResponse(Product product){
        BeanUtils.copyProperties(product,this);
        this.isActivity = IsActivityConstant.YES;
        this.recImgFlag = 0;
    }

    public ProductActivityResponse(Product product,List<UsersFake> usersFakes){
        this(product);
        this.fakeUserList = usersFakes;
        this.recImgFlag = 0;
    }

    public ProductActivityResponse(){}
}
